✅htop
: Linux 시스템 실시간 모니터링 프로그램
top에서 업그레이드된 툴로, top은 하나의 코어를 하나의 cpu로 계산하지만 htop은 코어 개수를 확인해서 각 프로세스 정보를 더 디테일하게 모니터링한다.
-
설치
sudo yum install htop
-
실행
htop
-
참고자료
✅동시성 이슈
동일한 하나의 데이터에 2개 이상의 스레드 혹은 세션에서 가변 데이터를 동시에 제어할 때 나타날 수 있는 문제.
동시성 이슈의 문제점은 다음과 같다.
- 공유 데이터에 대해 예상 결과와 다른 결과가 나옴에도 오류가 발생하지 않기 때문에 즉각적으로 알아차리기 어렵다.
- 비정형적으로 발생하기 때문에 디버깅이 어렵다.
- 로컬 개발 환경에서는 파악하기 어렵다.
이를 해결하기 위한 핵심 아이디어는 가변 데이터에 순차적으로 접근할 수 있게 하는 것.
- 해결 방법
-
메서드에 synchronized 키워드를 사용하면 해결할 수 있지 않을까? synchronized는 하나의 프로세스 안에서만 보장이 되기 때문에, 서버가 1대일 때는 문제가 없지만 서버가 2대 이상인 경우 데이터에 대한 접근을 막을 수 없다.
-
Database의 Lock을 활용해보자
-
비관적 락 - 데이터에 배타적 잠금을 걸어주면, 다른 트랜잭션에서는 lock이 해제되기 전까지는 데이터를 가져갈 수 없게 된다.
⇒ 데드락의 위험성이 있으므로 주의하며 사용해야 한다.
-
낙관적 락 - 버전을 이용해 정합성을 맞춘다. 데이터를 읽고 update를 수행하기 전에 내가 읽은 버전과 일치하는지 확인하고 업데이트를 한다.
-
-
[Spring & Java] 🚀 재고시스템으로 알아보는 동시성이슈 해결방법
✅@Transient
@Transient
private Integer temp;
DB 테이블과 매핑되지 않는 필드를 명시할 때 사용한다.
객체에 임시로 어떤 값을 보관하고 싶을 때 사용한다.